/**
 * 文件名：WebConfig.java
 * 功能：Web 层配置类
 * 作用：配置跨域资源共享（CORS），允许前端跨域访问后端 API
 * 模块关系：
 *   - 全局配置：影响所有 /api/** 路径的请求
 *   - 与前端协同：允许 Vue3 开发服务器（localhost:5173）跨域访问
 *   - 与 SecurityConfig 配合：安全配置中也需要禁用 CORS 限制
 * 作者：白永康
 * 学号：2501210209
 */
package com.example.demo.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.*;

/**
 * Web MVC 配置类
 * 配置跨域资源共享（CORS）等 Web 层功能
 */
@Configuration
public class WebConfig implements WebMvcConfigurer {
    
    /**
     * 配置跨域访问控制
     * 允许前端开发服务器（Vue3/Vite）跨域访问后端 API
     * @param registry CORS 注册表
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/api/**")
                .allowedOrigins("http://localhost:5173", "http://127.0.0.1:5173")
                .allowedMethods("GET","POST","PUT","DELETE","PATCH","OPTIONS")
                .allowedHeaders("*")
                .allowCredentials(true)
                .maxAge(3600);
    }
}
